#include <head.h>
// 线程传递参数
/*
普通变量
结构体
*/

// 传递 普通变量
void * Func_pthread_1(void * arg)
{
    int val = *((int * )arg);
    printf("输入的数值 = %d\n" , val);
}

typedef struct stu
{
    char name[123];
    int id;
}stu;


// 结构体
void * Func_pthread_2(void * arg)
{
    stu stu_1 = *((stu *)arg);
    printf("stu = %s %d\n" , stu_1.name , stu_1.id);
}

int main(int argc, char const *argv[])
{
    // 线程的创建
    pthread_t tid;


    // 传递普通变量
    int val_1 = 10;
    pthread_create(&tid , NULL , Func_pthread_1 , (void *)&val_1);
    
    // 线程的回收
    pthread_join(tid , NULL);


    // 传递结构体
    stu stu_1 = {.name = "张三" , .id = 10};
    pthread_create(&tid , NULL , Func_pthread_2 , (void *)&stu_1);
    
    // 线程的回收
    pthread_join(tid , NULL);
    return 0;
}